/********************************************
 * 功能说明: 日期格式验证类
 * 模块名称: 验证模块
 * 系统名称: java敏捷开发平台
 * 软件版权:
 * 系统版本: 1.0.0
 * 开发人员: zhangfb
 * 开发时间: 2017年5月12日 下午1:48:34
 * 审核人员:
 * 相关文档:
 * 修改记录: 修改日期 修改人员 修改说明
 *********************************************/
package com.hyacinth.cloudnote.common.validator;



import com.hyacinth.cloudnote.common.validator.constraints.DateFormat;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import java.text.ParseException;
import java.text.SimpleDateFormat;


/**
 * 日期格式验证类
 * @author zhangfb
 * @version 1.0.0.1
 */
public class DateFormatValidator implements ConstraintValidator<DateFormat, String> {

	private String pattern;
	
	@Override
	public void initialize(DateFormat annotation) {
		pattern = annotation.value();
	}

	@Override
	public boolean isValid(String value, ConstraintValidatorContext context) {
		if(value != null && !value.trim().isEmpty()){
			try {
				SimpleDateFormat sdf = new SimpleDateFormat(pattern);
				// 严格格式校验
				sdf.setLenient(false);
				sdf.parse(value);
			} catch (ParseException e) {
				return false;
			}
		}
		return true;
	}

}
